//
//  DataSaveAndGet.m
//  CarOwnerCarefree
//
//  Created by zp on 13-7-15.
//  Copyright (c) 2013年 zp. All rights reserved.
//

#import "DataSaveAndGet.h"

#define USERDEFAULTS [NSUserDefaults standardUserDefaults]

@implementation DataSaveAndGet
#pragma mark - 信息存储 method
#pragma mark -
/**
 *  将信息存储到NSUserDefaults
 *
 *  @param value 将要存储的值
 *  @param type  将要存储的值的类型
 *  @param key   对应的key值
 */
+ (void)saveValue:(id)value withType:(NSString *)type withKey:(NSString *)key
{
    //清除以前的字段
    [USERDEFAULTS removeObjectForKey:key];
    
    [USERDEFAULTS synchronize];
    
    //判断输入有效性
    if (value != nil && [value isKindOfClass:NSClassFromString(type)])
    {
        //将将要存储的信息，转换为nsdata类型
        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:value];
        
        [USERDEFAULTS setObject:data forKey:key];
        
        [USERDEFAULTS synchronize];
    }
}


#pragma mark - 获取信息 method
#pragma mark -
/**
 *  从NSUserDefaults获取信息
 *
 *  @param type 获取信息的值的类型
 *  @param key  信息对应的key
 *
 *  @return 将要获取的信息
 */
+ (id)getValueWithType:(NSString *)type withKey:(NSString *)key
{
    //获取key值对应的value
    NSData *data = [USERDEFAULTS objectForKey:key];
    
    if (data == nil)
    {
        return nil;
    }
    
    //将nsdata类型转换为 id 类型
    id value = [NSKeyedUnarchiver unarchiveObjectWithData:data];
    
    //判断输出有效性
    if (value != nil && [value isKindOfClass:NSClassFromString(type)])
    {
        return value;
    }
    return nil;
}


@end
